import { ajax } from '../../utils/index';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    role: '0', // 默认为普通用户，字符串类型以匹配后端
    account: '',
    password: '',
    isLoggedIn: false
  },

  /**
   * 获取账号输入值
   */
  getAccount(e) {
    this.setData({
      account: e.detail.value
    });
  },

  /**
   * 获取密码输入值
   */
  getPassword(e) {
    this.setData({
      password: e.detail.value
    });
  },

  /**
   * 角色选择变化事件处理
   */
  onRoleChange(e) {
    this.setData({
      role: e.detail.value
    });
  },

  /**
   * 跳转到注册页面
   */
  toRegister() {
    wx.navigateTo({
      url: '../register/register',
    });
  },

  /**
   * 提交登录表单
   */
  async submit() {
    const { role, account, password } = this.data;

    // 校验必填项
    if (!account || !password) {
      wx.showToast({
        title: '存在必填项未填!',
        icon: 'none'
      });
      return;
    }

    try {
      // 发送登录请求
      const response = await ajax('/api/user/login', 'POST', { // 修改请求路径
        account,
        password,
        role: parseInt(role) // 确保角色为整数类型
      });

      if (response) { // 修改响应判断逻辑
        console.log(response);
        const {userId,name,account,password,role,phone} = response.data.miniAppUser
        const loginInfo = {
          userId,name,account,password,role,phone
        };
        wx.setStorageSync('loginInfo', loginInfo);

        // 登录成功后根据角色跳转到不同的页面
        if (loginInfo.role === 0) { // 修改角色判断逻辑
          wx.switchTab({
            url: '../index/index',
            success: () => {
              wx.showToast({
                title: '登录成功!',
              });
            }
          });
        } else if (loginInfo.role === 1) { // 修改角色判断逻辑
          wx.redirectTo({
            url: '../workIndex/workIndex',
            success: () => {
              wx.showToast({
                title: '登录成功!',
              });
            }
          });
        }
      } else {
        wx.showToast({
          title: '登录失败!',
          icon: 'none'
        });
      }
    } catch (error) {
      console.error(error);
      wx.showToast({
        title: '服务器错误，请稍后再试!',
        icon: 'none'
      });
    }
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    const loginInfo = wx.getStorageSync('loginInfo');
    if (loginInfo) {
      const { role } = loginInfo;
      if (role === 0) { // 修改角色判断逻辑
        wx.switchTab({
          url: '../index/index',
        });
      } else if (role === 1) { // 修改角色判断逻辑
        wx.redirectTo({
          url: '../workIndex/workIndex',
        });
      }
    }
  }
});
